class ServiceCfController {
    constructor($rootScope, $scope, $cookieStore, $timeout, $state, ngDialog, dialogService, ServiceService, getCourseList, fileReader, iRunner){

        var vm = this;

        vm.$rootScope     = $rootScope;
        vm.$cookieStore   = $cookieStore;
        vm.$timeout       = $timeout;
        vm.$state         = $state;
        vm.ngDialog       = ngDialog;
        vm.dialogService  = dialogService;
        vm.ServiceService = ServiceService;
        vm.getCourseList  = getCourseList;
        vm.fileReader     = fileReader;
        vm.iRunner        = iRunner;

        vm.certificate = false;
        vm.previewFlag = false;

        //判断短信开关是否打开
        if ($rootScope.raceinfo.cert_download == 'yes') {
            vm.certificateservice = true;
        } else {
            vm.certificateservice = false;
            return false;
        }

        // 科目列表
        vm.getCourseList.code==0&&(vm.courselist = vm.getCourseList.data);

        // 改变当前科目获取证书
        vm.getScoresms = function(course_id) {
            // 获取当前证书信息
            vm.ServiceService.postServiceCoursecert(vm.$cookieStore.get('access_token'), vm.service.course.course_id)
            .then(function(data) {
                // 成功调用（证书存在的情况下）
                if (data.code==0) {
                    //显示证书
                    vm.certificate = true;
                    //显示证书
                    vm.imageSrc2 = "../" + data.data.temp_file;
                    //判断证书是否编辑过
                    if (data.data.print_info != "") {
                        //编辑过的场合(previewFlag:ture 可以预览)
                        vm.previewFlag = true;
                        //预览链接
                        vm.previewLink = "/dashboard/service/coursecert?course_id=" + vm.service.course.course_id + "&op=preview&access-token=" + $cookieStore.get('access_token');
                    } else {
                        //未编辑过的场合(previewFlag:false 不可以预览)
                        vm.previewFlag = false;
                    }
                } else{
                    //上传证书
                    vm.certificate = false;
                    // 清空证书图片
                    vm.imageSrc2 = "";
                }
                // 登录信息已过期, 请重新登录
                data.code==-1001&&vm.dialogService.error(data.message, true);
                console.log(data)
            }, function(data) {
                console.log('error')
            });
        }


        // 获取上传图片的地址url，用以实现预览图片
        vm.getFile2 = function () {
            fileReader.readAsDataUrl($scope.file, $scope)
            .then(function(result) {
                console.log($scope.file)

                //判断附件是否为图片
                if(!/image\/\w+/.test($scope.file.type)){
                    vm.dialogService.error('图片类型必须是.gif,jpeg,jpg,png中的一种哦');
                    return false;
                } else {
                    vm.imageSrc2 = result;
                }
                
            }, function(data) {
                console.log('error')
            });
        }

        //编辑证书
        vm.edit = function() {
            //跳转证书编辑页面
            vm.$state.go('dashboard.race.certificateEdit', {course_id: vm.service.course.course_id});
        }

        //删除证书
        vm.delete = function() {

            // 保存证书或更改证书
            vm.ServiceService.postServiceCoursecertDel(vm.$cookieStore.get('access_token'), vm.service.course.course_id)
            .then(function(data) {
                // 成功调用（证书村子的情况下）
                if (data.code==0) {
                    //重新显示页面
                    vm.certificate = false;
                    vm.previewFlag = false;
                    // 清空证书图片
                    vm.imageSrc2 = "";
                    vm.ngDialog.open({
                        template: '<p>删除证书成功</p>',
                        className: 'ngdialog-theme-default ngdialog-alert',
                        plain: true
                    });

                } else{
                    vm.ngDialog.open({
                        template: '<p>' + data.message + '</p>',
                        className: 'ngdialog-theme-default ngdialog-alert',
                        plain: true
                    });
                }
                // 登录信息已过期, 请重新登录
                data.code==-1001&&vm.dialogService.error(data.message, true);
                console.log(data)
            }, function(data) {
                console.log('error')
            });
        }

        // 表单提交
        vm.submitForm = function(isValid) {

            // 验证失败, 提示用户
            if (!isValid) {
                vm.ngDialog.open({
                    template: '<p>请选择科目</p>',
                    className: 'ngdialog-theme-default ngdialog-alert',
                    plain: true
                });
            }

            // 验证通过postServiceUploadcert
            if (isValid) {

                var params = {
                    file: vm.myFile2
                }

                // 保存证书或更改证书
                vm.ServiceService.postServiceUploadcert(params, vm.$cookieStore.get('access_token'), vm.service.course.course_id)
                .then(function(data) {
                    // 更改或者保存证书
                    if (data.code == 0) {
                        //变化页面按钮
                        vm.certificate = true;
                        vm.ngDialog.open({
                            template: '<p>证书保存成功</p>',
                            className: 'ngdialog-theme-default ngdialog-alert',
                            plain: true
                        });
                    } else {
                        vm.ngDialog.open({
                            template: '<p>'+ data.message +'</p>',
                            className: 'ngdialog-theme-default ngdialog-alert',
                            plain: true
                        });

                    }


                    // 登录信息已过期, 请重新登录
                    data.code==-1001&&dialogService.error(data.message, true);
                    console.log(data)
                }, function(data) {
                    console.log('error')
                });

                
                console.log(vm.myFile2)
            }

            return false;
        }

    }
}

ServiceCfController.$inject = ['$rootScope', '$scope', '$cookieStore', '$timeout', '$state', 'ngDialog', 'dialogService', 'ServiceService', 'getCourseList', 'fileReader', 'iRunner']; 

export default ServiceCfController;